package com.fy.fyai.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fy.fyai.common.result.R;
import com.fy.fyai.model.entity.AiChatConversation;
import com.fy.fyai.model.entity.MessageContent;
import org.springframework.ai.chat.messages.Message;

import java.util.List;

/**
 * AI聊天会话Service接口
 * @author fwq
 * @date 2025-10-24
 */
public interface AiChatConversationService extends IService<AiChatConversation> {

    /**
     * 向指定会话添加新消息
     * @param conversationId 会话ID
     * @param messages 新消息
     * @return 消息流
     */
    void addMessageToConversation(String conversationId, List<Message> messages);

    /**
     * 获取指定会话的所有消息（按时间排序）
     *
     * @param conversationId 会话ID
     * @return 消息列表
     */
    R getConversationMessages(String conversationId);

    /**
     * 创建新会话
     * @return 创建的会话
     */
    AiChatConversation createNewConversation(Integer userId);
    /**
     * 获取指定会话的最近K条消息
     * @param conversationId 会话ID
     * @param lastN 最近K条
     * @return 消息列表
     */
    List<MessageContent> getTopKChatMemory(String conversationId, int lastN);

     /**
     * 清空指定会话的聊天记忆
     * @param conversationId 会话ID
     */
    void clearChatMemory(String conversationId);
}
